subroutine check_readrctn(cunit)
  use param
  use react_data_param,only:n_react_type
  use react_data_param,only:react_type
  use label_data_param,only:n_obj_type
  use label_data_param,only:obj_type
  implicit none

  integer,intent(in) :: cunit

  integer :: i,j,k,n,pos1,pos2,in1
  character(len=len_linebuf) :: str

  if (n_react_type.eq.0) return

  in1=1

  call log_msg1(cunit,"")
  call log_msg1(cunit,"Check reaction data...")
  call log_msg1(cunit,"")

  do i=1,n_react_type
     do j=1,react_type(i)%n_data
        write(str(1:7),'("[",i5.5,"]")') i
        n=react_type(i)%obj1
        write(str(8:13),'(1x,a5)') obj_type(n)%name
        write(str(14:16),'(1x,"+",1x)')
        n=react_type(i)%obj2
        write(str(17:24),'(1x,a5,1x)') obj_type(n)%name
        write(str(24:27),'(1x,"->",1x)') 
        pos1=27
        if (react_type(i)%n_new(j).eq.0) then
           pos2=pos1+6
           write(str(pos1+1:pos2),'(1x,"null",1x)')
           pos1=pos2
        else
           do k=1,react_type(i)%n_new(j)
              pos2=pos1+5
              n=react_type(i)%new(j)%prod_type(k)
              write(str(pos1+1:pos2),'(a5)') obj_type(n)%name
              pos1=pos2
           end do
        end if
        pos2=pos1+6
        write(str(pos1+1:pos2),'(1x,"(",i2.2,")",1x)') &
             react_type(i)%n_new(j)
        pos1=pos2
        pos2=pos1+12
        write(str(pos1+1:pos2),'("Eb=",1pe8.2,1x)') &
             react_type(i)%react_eb(j)
        pos1=pos2
        pos2=pos1+12
        write(str(pos1+1:pos2),'("nu=",1pe8.2,1x)') &
             react_type(i)%react_nu(j)
        pos1=pos2
        pos2=pos1+11
        write(str(pos1+1:pos2),'("Rd=",1pe8.2)') &
             react_type(i)%react_rd(j)
        call log_msg1_indent(cunit,in1,str(1:pos2))
     end do
  end do

  return

end subroutine check_readrctn
